{
  LW Channel -- LightWave Channel Filters

  Based on lwanimlod.h which is:
  Copyright 1999, NewTek, Inc.
}

{
  Copyright 2012, Jameel Halabi

  This unit is part of the BlaiseWave wrapper,
  which is licensed under the BSD 2-Clause license (see licenses/license.txt).
}

unit LW_Channel;

{$mode objfpc}{$H+}

interface

uses
  LW_Render ,
  LW_Types  ;

const

  LWCHANNEL_HCLASS  = 'ChannelHandler'   ;
  LWCHANNEL_ICLASS  = 'ChannelInterface' ;
  LWCHANNEL_GCLASS  = 'ChannelGizmo'     ;
  LWCHANNEL_VERSION = 4                  ;

type
  TLWChannelAccess = record
    Chan           :  PLWChannel ;
    Frame          :  TLWFrame    ;
    Time           :  TLWTime     ;
    Value          :  Double      ;
    GetChannel     : procedure
                     (      ChanID         :  PLWChannel ;
                            Time           :  TLWTime     ;
                            Value          :  PDouble     ) ;
    SetChannel     : procedure
                     (      ChanID         :  PLWChannel ;
                            Value          :  Double      ) ;
    ChannelName    : function
                     (      ChanID         :  PLWChannel ) : PChar ; // const
  end;

  TLWChannelHandler = record
    Inst       : PLWInstanceFuncs ;
    Item       : PLWItemFuncs     ;
    Evaluate   : procedure
                 (       Instance  : PLWInstance         ;
                         Access    : TLWChannelAccess    ) ;
    Flags      : function
                 (       Instance  : PLWInstance         ) : UInt32 ;
  end;

implementation

end.

